home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 2
/
AACD 2.iso
/
AACD
/
Magazine
/
GraphicsCards
/
StormMesa
/
src
/
misc.s
< prev
next >
Wrap
Text File
|
1999-02-04
|
25KB
|
1,372 lines
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/misc.c
mc68030
mc68881
XREF _gl_clear_stencil_buffer
XREF _gl_mask_index_span
XREF _gl_mask_rgba_span
XREF _gl_clear_depth_buffer
XREF _gl_update_state
XREF _gl_error
XREF _gl_write_alpha_span
XREF _gl_clear_alpha_buffers
XREF _gl_clear_accum_buffer
XREF _q_memset
XREF _strcat
XREF _strcpy
XREF _CC
XREF _std__in
XREF _std__out
XREF _std__err
SECTION "_gl_ClearIndex:0",CODE
;void gl_ClearIndex( GLcontext *ctx, GLfloat c )
XDEF _gl_ClearIndex
_gl_ClearIndex
move.l 4(a7),a0
fmove.s $8(a7),fp0
L82
; if (INSIDE_BEGIN_END(ctx))
move.l a0,a1
add.l #$E968,a1
move.l (a1),d0
cmp.l #$1A00,d0
beq.b L84
L83
; gl_error( ctx, GL_INVALID_OPERATION, "glClearIndex" );
move.l #L81,-(a7)
pea $502.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
rts
L84
; ctx->Color.ClearIndex = (GLuint) c;
fmove.l fp0,d0
move.l d0,$21C4(a0)
; if (!ctx->Visual->RGBAflag)
move.l $8F8(a0),a1
tst.b (a1)
bne.b L86
L85
; (*ctx->Driver.ClearIndex)( ctx, ctx->Color.ClearIndex );
move.l $21C4(a0),-(a7)
move.l a0,-(a7)
move.l $908(a0),a0
jsr (a0)
addq.w #$8,a7
L86
rts
L78
dc.b '1.2 Mesa 3.0',0
L77
dc.b 'Brian Paul',0
L79
dc.b 'GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_logic_op GL_'
dc.b 'EXT_blend_subtract GL_EXT_paletted_texture GL_EXT_point_paramete'
dc.b 'rs GL_EXT_polygon_offset GL_EXT_vertex_array GL_EXT_texture_obje'
dc.b 'ct GL_EXT_texture3D GL_MESA_window_pos GL_MESA_resize_buffers GL'
dc.b '_EXT_shared_texture_palette GL_EXT_rescale_normal GL_EXT_abgr GL'
dc.b '_SGIS_texture_edge_clamp GL_SGIS_multitexture GL_EXT_multitextur'
dc.b 'e',0
L81
dc.b 'glClearIndex',0
SECTION "_gl_ClearColor:0",CODE
rts
;void gl_ClearColor( GLcontext *ctx, GLclampf red, GLclampf green,
XDEF _gl_ClearColor
_gl_ClearColor
movem.l d2/d3,-(a7)
fmovem.x fp2/fp3,-(a7)
move.l $24(a7),a0
fmove.s $34(a7),fp0
fmove.s $30(a7),fp1
fmove.s $2C(a7),fp2
fmove.s $28(a7),fp3
L88
; if (INSIDE_BEGIN_END(ctx))
move.l a0,a1
add.l #$E968,a1
move.l (a1),d0
cmp.l #$1A00,d0
beq.b L90
L89
; gl_error( ctx, GL_INVALID_OPERATION, "glClearColor" );
move.l #L87,-(a7)
pea $502.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
fmovem.x (a7)+,fp2/fp3
movem.l (a7)+,d2/d3
rts
L90
; ctx->Color.ClearColor[0] = CLAMP( red, 0.0F, 1.0F );
fcmp.s #$.00000000,fp3
fboge.b L92
L91
fmove.s #$.00000000,fp3
bra.b L96
L92
fcmp.s #$.3F800000,fp3
fbole.b L94
L93
fmove.s #$.3F800000,fp3
L94
L95
L96
fmove.s fp3,$21C8(a0)
; ctx->Color.ClearColor[1] = CLAMP( green, 0.0F, 1.0F );
fcmp.s #$.00000000,fp2
fboge.b L98
L97
fmove.s #$.00000000,fp2
bra.b L102
L98
fcmp.s #$.3F800000,fp2
fbole.b L100
L99
fmove.s #$.3F800000,fp2
L100
L101
L102
lea $21C8(a0),a1
fmove.s fp2,4(a1)
; ctx->Color.ClearColor[2] = CLAMP( blue, 0.0F, 1.0F );
fcmp.s #$.00000000,fp1
fboge.b L104
L103
fmove.s #$.00000000,fp1
bra.b L108
L104
fcmp.s #$.3F800000,fp1
fbole.b L106
L105
fmove.s #$.3F800000,fp1
L106
L107
L108
lea $21C8(a0),a1
fmove.s fp1,$8(a1)
; ctx->Color.ClearColor[3] = CLAMP( alpha, 0.0F, 1.0F );
fcmp.s #$.00000000,fp0
fboge.b L110
L109
fmove.s #$.00000000,fp0
bra.b L114
L110
fcmp.s #$.3F800000,fp0
fbole.b L112
L111
fmove.s #$.3F800000,fp0
L112
L113
L114
lea $21C8(a0),a1
fmove.s fp0,$C(a1)
; if (ctx->Visual->RGBAflag)
move.l $8F8(a0),a1
tst.b (a1)
beq.b L116
L115
; GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F);
fmove.s $21C8(a0),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d3
; GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F);
lea $21C8(a0),a1
fmove.s 4(a1),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d2
; GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F);
lea $21C8(a0),a1
fmove.s $8(a1),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
; GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F);
lea $21C8(a0),a1
fmove.s $C(a1),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
; (*ctx->Driver.ClearColor)( ctx, r, g, b, a );
move.b d0,-(a7)
move.b d1,-(a7)
move.b d2,-(a7)
move.b d3,-(a7)
move.l a0,-(a7)
move.l $90C(a0),a0
jsr (a0)
add.w #$C,a7
L116
fmovem.x (a7)+,fp2/fp3
movem.l (a7)+,d2/d3
rts
L87
dc.b 'glClearColor',0
SECTION "_clear_color_buffer_with_masking:0",CODE
;static void clear_color_buffer_with_masking( GLcontext *ctx )
_clear_color_buffer_with_masking
L137 EQU -$1F70
link a5,#L137
movem.l d2-d7/a2,-(a7)
move.l $8(a5),a2
L117
; if (ctx->Scissor.Enabled)
move.l a2,a0
add.l #$DE92,a0
tst.b (a0)
beq.b L119
L118
; x = ctx->Buffer->Xmin;
move.l $8FC(a2),a0
move.l $24(a0),d4
; y = ctx->Buffer->Ymin;
move.l $8FC(a2),a0
move.l $2C(a0),d3
; height = ctx->Buffer->Ymax - ctx->Buffer->Ymin + 1;
move.l $8FC(a2),a0
move.l $30(a0),-$C(a5)
move.l $8FC(a2),a0
move.l -$C(a5),d0
sub.l $2C(a0),d0
move.l d0,-$C(a5)
addq.l #1,-$C(a5)
; width = ctx->Buffer->Xmax - ctx->Buffer->Xmin + 1;
move.l $8FC(a2),a0
move.l $28(a0),d2
move.l $8FC(a2),a0
sub.l $24(a0),d2
addq.l #1,d2
bra.b L120
L119
; x = 0;
moveq #0,d4
; y = 0;
moveq #0,d3
; height = ctx->Buffer->Height;
move.l $8FC(a2),a0
move.l $8(a0),-$C(a5)
; width = ctx->Buffer->Width;
move.l $8FC(a2),a0
move.l 4(a0),d2
L120
; if (ctx->Visual->RGBAflag)
move.l $8F8(a2),a0
tst.b (a0)
beq L130
L121
; GLubyte r = (GLint) (ctx->Color.ClearColor[0] * 255.0F);
fmove.s $21C8(a2),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,-$11(a5)
; GLubyte g = (GLint) (ctx->Color.ClearColor[1] * 255.0F);
lea $21C8(a2),a0
fmove.s 4(a0),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d7
; GLubyte b = (GLint) (ctx->Color.ClearColor[2] * 255.0F);
lea $21C8(a2),a0
fmove.s $8(a0),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d6
; GLubyte a = (GLint) (ctx->Color.ClearColor[3] * 255.0F);
lea $21C8(a2),a0
fmove.s $C(a0),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d5
; for (i=0;
clr.l -$18(a5)
bra L128
L122
; for (j=0;
moveq #0,d0
bra.b L124
L123
; rgba[j][RCOMP] = r;
lea -$1918(a5),a0
move.b -$11(a5),0(a0,d0.l*4)
; rgba[j][GCOMP] = g;
lea -$1918(a5),a0
lea 0(a0,d0.l*4),a0
move.b d7,1(a0)
; rgba[j][BCOMP] = b;
lea -$1918(a5),a0
lea 0(a0,d0.l*4),a0
move.b d6,2(a0)
; rgba[j][ACOMP] = a;
lea -$1918(a5),a0
lea 0(a0,d0.l*4),a0
move.b d5,3(a0)
addq.l #1,d0
L124
cmp.l d2,d0
blt.b L123
L125
; gl_mask_rgba_span( ctx, width, x, y, rgba );
pea -$1918(a5)
move.l d3,-(a7)
move.l d4,-(a7)
move.l d2,-(a7)
move.l a2,-(a7)
jsr _gl_mask_rgba_span
add.w #$14,a7
; (*ctx->Driver.WriteRGBASpan)( ctx, width, x, y, (C
clr.l -(a7)
pea -$1918(a5)
move.l d3,-(a7)
move.l d4,-(a7)
move.l d2,-(a7)
move.l a2,-(a7)
move.l $924(a2),a0
jsr (a0)
add.w #$18,a7
; if (ctx->RasterMask & ALPHABUF_BIT)
move.l a2,a0
add.l #$E974,a0
move.l (a0),d0
and.l #$100,d0
beq.b L127
L126
; gl_write_alpha_span( ctx, width, x, y, (CONS
clr.l -(a7)
pea -$1918(a5)
move.l d3,-(a7)
move.l d4,-(a7)
move.l d2,-(a7)
move.l a2,-(a7)
jsr _gl_write_alpha_span
add.w #$18,a7
L127
addq.l #1,-$18(a5)
addq.l #1,d3
L128
move.l -$18(a5),d0
cmp.l -$C(a5),d0
blt L122
L129
bra.b L136
L130
; MEMSET( mask, 1, width )
move.l d2,-(a7)
pea 1.w
pea -$1F50(a5)
jsr _q_memset
add.w #$C,a7
; for (i=0;
moveq #0,d5
bra.b L135
L131
; for (j=0;
moveq #0,d0
bra.b L133
L132
; indx[j] = ctx->Color.ClearIndex;
lea -$1910(a5),a0
move.l $21C4(a2),0(a0,d0.l*4)
addq.l #1,d0
L133
cmp.l d2,d0
blt.b L132
L134
; gl_mask_index_span( ctx, width, x, y, indx );
pea -$1910(a5)
move.l d3,-(a7)
move.l d4,-(a7)
move.l d2,-(a7)
move.l a2,-(a7)
jsr _gl_mask_index_span
add.w #$14,a7
; (*ctx->Driver.WriteCI32Span)( ctx, width, x, y, in
pea -$1F50(a5)
pea -$1910(a5)
move.l d3,-(a7)
move.l d4,-(a7)
move.l d2,-(a7)
move.l a2,-(a7)
move.l $938(a2),a0
jsr (a0)
add.w #$18,a7
addq.l #1,d5
addq.l #1,d3
L135
cmp.l -$C(a5),d5
blt.b L131
L136
movem.l (a7)+,d2-d7/a2
unlk a5
rts
SECTION "_clear_color_buffers:0",CODE
;static void clear_color_buffers( GLcontext *ctx )
_clear_color_buffers
movem.l d2-d4/a2,-(a7)
move.l $14(a7),a2
L138
; if (ctx->Color.SWmasking)
tst.b $21E0(a2)
beq.b L140
L139
; clear_color_buffer_with_masking( ctx );
move.l a2,-(a7)
jsr _clear_color_buffer_with_masking
addq.w #4,a7
bra L142
L140
; GLint x = ctx->Buffer->Xmin;
move.l $8FC(a2),a0
move.l $24(a0),d4
; GLint y = ctx->Buffer->Ymin;
move.l $8FC(a2),a0
move.l $2C(a0),d3
; GLint height = ctx->Buffer->Ymax - ctx->Buffer->Ymin + 1;
move.l $8FC(a2),a0
move.l $30(a0),d1
move.l $8FC(a2),a0
sub.l $2C(a0),d1
addq.l #1,d1
; GLint width = ctx->Buffer->Xmax - ctx->Buffer->Xmin + 1;
move.l $8FC(a2),a0
move.l $28(a0),d0
move.l $8FC(a2),a0
sub.l $24(a0),d0
addq.l #1,d0
; (void) (*ctx->Driver.Clear)( ctx, GL_COLOR_BUFFER_BIT,
move.l d1,-(a7)
move.l d0,-(a7)
move.l d3,-(a7)
move.l d4,-(a7)
move.l a2,a0
add.l #$DE92,a0
tst.b (a0)
seq d0
and.l #1,d0
move.b d0,-(a7)
pea $4000.w
move.l a2,-(a7)
move.l $910(a2),a0
jsr (a0)
add.w #$1A,a7
; if (ctx->RasterMask & ALPHABUF_BIT)
move.l a2,a0
add.l #$E974,a0
move.l (a0),d0
and.l #$100,d0
beq.b L142
L141
; gl_clear_alpha_buffers( ctx );
move.l a2,-(a7)
jsr _gl_clear_alpha_buffers
addq.w #4,a7
L142
; if (ctx->RasterMask & FRONT_AND_BACK_BIT)
move.l a2,a0
add.l #$E974,a0
move.l (a0),d0
and.l #$400,d0
beq L147
L143
; (*ctx->Driver.SetBuffer)( ctx, GL_BACK );
pea $405.w
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
; if (ctx->Color.SWmasking)
tst.b $21E0(a2)
beq.b L145
L144
; clear_color_buffer_with_masking( ctx );
move.l a2,-(a7)
jsr _clear_color_buffer_with_masking
addq.w #4,a7
bra.b L146
L145
; GLint x = ctx->Buffer->Xmin;
move.l $8FC(a2),a0
move.l $24(a0),d4
; GLint y = ctx->Buffer->Ymin;
move.l $8FC(a2),a0
move.l $2C(a0),d3
; GLint height = ctx->Buffer->Ymax - ctx->Buffer->Ym
move.l $8FC(a2),a0
move.l $30(a0),d1
move.l $8FC(a2),a0
sub.l $2C(a0),d1
addq.l #1,d1
; GLint width = ctx->Buffer->Xmax - ctx->Buffer->Xm
move.l $8FC(a2),a0
move.l $28(a0),d0
move.l $8FC(a2),a0
sub.l $24(a0),d0
addq.l #1,d0
; (void) (*ctx->Driver.Clear)( ctx, GL_COLOR_BUFFER_
move.l d1,-(a7)
move.l d0,-(a7)
move.l d3,-(a7)
move.l d4,-(a7)
move.l a2,a0
add.l #$DE92,a0
tst.b (a0)
seq d0
and.l #1,d0
move.b d0,-(a7)
pea $4000.w
move.l a2,-(a7)
move.l $910(a2),a0
jsr (a0)
add.w #$1A,a7
L146
; (*ctx->Driver.SetBuffer)( ctx, GL_FRONT );
pea $404.w
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
L147
movem.l (a7)+,d2-d4/a2
rts
SECTION "_gl_Clear:0",CODE
;void gl_Clear( GLcontext *ctx, GLbitfield mask )
XDEF _gl_Clear
_gl_Clear
movem.l d2-d7/a2,-(a7)
move.l $24(a7),d5
move.l $20(a7),a2
L149
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L151
L150
; gl_error( ctx, GL_INVALID_OPERATION, "glClear" );
move.l #L148,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
rts
L151
; if (ctx->RenderMode==GL_RENDER)
move.l a2,a0
add.l #$E964,a0
move.l (a0),d0
cmp.l #$1C00,d0
bne L169
L152
; if (ctx->NewState)
move.l a2,a0
add.l #$E960,a0
tst.l (a0)
beq.b L154
L153
; gl_update_state( ctx );
move.l a2,-(a7)
jsr _gl_update_state
addq.w #4,a7
L154
; x = ctx->Buffer->Xmin;
move.l $8FC(a2),a0
move.l $24(a0),d7
; y = ctx->Buffer->Ymin;
move.l $8FC(a2),a0
move.l $2C(a0),d6
; height = ctx->Buffer->Ymax - ctx->Buffer->Ymin + 1;
move.l $8FC(a2),a0
move.l $30(a0),d4
move.l $8FC(a2),a0
sub.l $2C(a0),d4
addq.l #1,d4
; width = ctx->Buffer->Xmax - ctx->Buffer->Xmin + 1;
move.l $8FC(a2),a0
move.l $28(a0),d3
move.l $8FC(a2),a0
sub.l $24(a0),d3
addq.l #1,d3
; newMask = (*ctx->Driver.Clear)( ctx, mask, !ctx->Scissor
move.l d4,-(a7)
move.l d3,-(a7)
move.l d6,-(a7)
move.l d7,-(a7)
move.l a2,a0
add.l #$DE92,a0
tst.b (a0)
seq d0
and.l #1,d0
move.b d0,-(a7)
move.l d5,-(a7)
move.l a2,-(a7)
move.l $910(a2),a0
jsr (a0)
add.w #$1A,a7
move.l d0,d2
; if ( (mask & GL_COLOR_BUFFER_BIT) &&
move.l d5,d0
and.l #$4000,d0
beq.b L158
L155
move.l d2,d0
and.l #$4000,d0
bne.b L158
L156
move.l a2,a0
add.l #$E974,a0
move.l (a0),d0
and.l #$100,d0
beq.b L158
L157
; gl_clear_alpha_buffers( ctx );
move.l a2,-(a7)
jsr _gl_clear_alpha_buffers
addq.w #4,a7
L158
; if ((mask & GL_COLOR_BUFFER_BIT)
and.l #$4000,d5
beq.b L161
L159
move.l a2,a0
add.l #$E974,a0
move.l (a0),d0
and.l #$400,d0
beq.b L161
L160
; (*ctx->Driver.SetBuffer)( ctx, GL_BACK );
pea $405.w
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
; (void) (*ctx->Driver.Clear)( ctx, GL_COLOR_BUFFER_
move.l d4,-(a7)
move.l d3,-(a7)
move.l d6,-(a7)
move.l d7,-(a7)
move.l a2,a0
add.l #$DE92,a0
tst.b (a0)
seq d0
and.l #1,d0
move.b d0,-(a7)
pea $4000.w
move.l a2,-(a7)
move.l $910(a2),a0
jsr (a0)
add.w #$1A,a7
; (*ctx->Driver.SetBuffer)( ctx, GL_FRONT );
pea $404.w
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
L161
; if (newMask & GL_COLOR_BUFFER_BIT)
move.l d2,d0
and.l #$4000,d0
beq.b L163
L162
; if (newMask & GL_C
move.l a2,-(a7)
jsr _clear_color_buffers
addq.w #4,a7
L163
; if (newMask & GL_DEPTH_BUFFER_BIT)
move.l d2,d0
and.l #$100,d0
beq.b L165
L164
; if (newMask & GL_D
move.l a2,-(a7)
jsr _gl_clear_depth_buffer
addq.w #4,a7
L165
; if (newMask & GL_ACCUM_BUFFER_BIT)
move.l d2,d0
and.l #$200,d0
beq.b L167
L166
; if (newMask & GL_A
move.l a2,-(a7)
jsr _gl_clear_accum_buffer
addq.w #4,a7
L167
; if (newMask & GL_STENCIL_BUFFER_BIT)
and.l #$400,d2
beq.b L169
L168
; if (newMask & GL_S
move.l a2,-(a7)
jsr _gl_clear_stencil_buffer
addq.w #4,a7
L169
movem.l (a7)+,d2-d7/a2
rts
L148
dc.b 'glClear',0
SECTION "_gl_GetString:0",CODE
;const GLubyte *gl_GetString( GLcontext *ctx, GLenum name )
XDEF _gl_GetString
_gl_GetString
move.l a2,-(a7)
move.l $C(a7),d1
move.l $8(a7),a2
L173
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L175
L174
; gl_error( ctx, GL_INVALID_OPERATION, "glGetString" );
move.l #L170,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #0,d0
move.l (a7)+,a2
rts
L175
; switch (name)
cmp.l #$1F02,d1
beq.b L180
bgt.b L185
cmp.l #$1F00,d1
beq.b L176
cmp.l #$1F01,d1
beq.b L177
bra L184
L185
cmp.l #$1F03,d1
beq.b L181
bra.b L184
;
L176
move.l _vendor___gl_GetString(a6),d0
move.l (a7)+,a2
rts
L177
; strcpy(result, "Mesa");
move.l #L171,-(a7)
pea _result___gl_GetString(a6)
jsr _strcpy
addq.w #$8,a7
; if (ctx->Driver.RendererString)
tst.l $900(a2)
beq.b L179
L178
; strcat(result, " ");
move.l #L172,-(a7)
pea _result___gl_GetString(a6)
jsr _strcat
addq.w #$8,a7
; strcat(result, (*ctx->Driver.RendererString)
move.l $900(a2),a0
jsr (a0)
move.l d0,-(a7)
pea _result___gl_GetString(a6)
jsr _strcat
addq.w #$8,a7
L179
lea _result___gl_GetString(a6),a0
move.l a0,d0
move.l (a7)+,a2
rts
L180
move.l _version___gl_GetString(a6),d0
move.l (a7)+,a2
rts
L181
; if (ctx->Driver.ExtensionString)
tst.l $95C(a2)
beq.b L183
L182
move.l a2,-(a7)
move.l $95C(a2),a0
jsr (a0)
addq.w #4,a7
move.l (a7)+,a2
rts
L183
move.l _extensions___gl_GetString(a6),d0
move.l (a7)+,a2
rts
L184
; gl_error( ctx, GL_INVALID_ENUM, "glGetString" );
move.l #L170,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #0,d0
move.l (a7)+,a2
rts
L172
dc.b ' ',0
L171
dc.b 'Mesa',0
L170
dc.b 'glGetString',0
SECTION "_gl_GetString:1",DATA
_vendor___gl_GetString
dc.l L77
_version___gl_GetString
dc.l L78
_extensions___gl_GetString
dc.l L79
SECTION "_gl_GetString:2",BSS
_result___gl_GetString
ds.b 1000
SECTION "_gl_Finish:0",CODE
;void gl_Finish( GLcontext *ctx )
XDEF _gl_Finish
_gl_Finish
move.l 4(a7),a0
L187
; if (INSIDE_BEGIN_END(ctx))
move.l a0,a1
add.l #$E968,a1
move.l (a1),d0
cmp.l #$1A00,d0
beq.b L189
L188
; gl_error( ctx, GL_INVALID_OPERATION, "glFinish" );
move.l #L186,-(a7)
pea $502.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
rts
L189
; if (ctx->Driver.Finish)
tst.l $960(a0)
beq.b L191
L190
; (*ctx->Driver.Finish)( ctx );
move.l a0,-(a7)
move.l $960(a0),a0
jsr (a0)
addq.w #4,a7
L191
rts
L186
dc.b 'glFinish',0
SECTION "_gl_Flush:0",CODE
;void gl_Flush( GLcontext *ctx )
XDEF _gl_Flush
_gl_Flush
move.l 4(a7),a0
L193
; if (INSIDE_BEGIN_END(ctx))
move.l a0,a1
add.l #$E968,a1
move.l (a1),d0
cmp.l #$1A00,d0
beq.b L195
L194
; gl_error( ctx, GL_INVALID_OPERATION, "glFlush" );
move.l #L192,-(a7)
pea $502.w
move.l a0,-(a7)
jsr _gl_error
add.w #$C,a7
rts
L195
; if (ctx->Driver.Flush)
tst.l $964(a0)
beq.b L197
L196
; (*ctx->Driver.Flush)( ctx );
move.l a0,-(a7)
move.l $964(a0),a0
jsr (a0)
addq.w #4,a7
L197
rts
L192
dc.b 'glFlush',0
SECTION "_gl_Hint:0",CODE
;void gl_Hint( GLcontext *ctx, GLenum target, GLenum mode )
XDEF _gl_Hint
_gl_Hint
movem.l d2/a2,-(a7)
move.l $14(a7),d0
move.l $10(a7),d2
move.l $C(a7),a2
L201
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d1
cmp.l #$1A00,d1
beq.b L203
L202
; gl_error( ctx, GL_INVALID_OPERATION, "glHint" );
move.l #L198,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2/a2
rts
L203
; if (mode!=GL_DONT_CARE && mode!=GL_FASTEST && mode!=GL_NICEST)
cmp.l #$1100,d0
beq.b L207
L204
cmp.l #$1101,d0
beq.b L207
L205
cmp.l #$1102,d0
beq.b L207
L206
; gl_error( ctx, GL_INVALID_ENUM, "glHint(mode)" );
move.l #L199,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2/a2
rts
L207
; switch (target)
cmp.l #$C52,d2
beq.b L209
bgt.b L215
cmp.l #$C50,d2
beq.b L210
cmp.l #$C51,d2
beq.b L211
bra.b L213
L215
cmp.l #$C53,d2
beq.b L212
cmp.l #$C54,d2
beq.b L208
bra.b L213
;
L208
; ctx->Hint.Fog = mode;
move.l d0,$2314(a2)
;
bra.b L214
L209
; ctx->Hint.LineSmooth = mode;
move.l d0,$230C(a2)
;
bra.b L214
L210
; ctx->Hint.PerspectiveCorrection = mode;
move.l d0,$2304(a2)
;
bra.b L214
L211
; ctx->Hint.PointSmooth = mode;
move.l d0,$2308(a2)
;
bra.b L214
L212
; ctx->Hint.PolygonSmooth = mode;
move.l d0,$2310(a2)
;
bra.b L214
L213
; gl_error( ctx, GL_INVALID_ENUM, "glHint(target)" );
move.l #L200,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L214
; ctx->NewState |= NEW_ALL;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #$FF,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
movem.l (a7)+,d2/a2
rts
L198
dc.b 'glHint',0
L199
dc.b 'glHint(mode)',0
L200
dc.b 'glHint(target)',0
SECTION "_gl_DrawBuffer:0",CODE
;void gl_DrawBuffer( GLcontext *ctx, GLenum mode )
XDEF _gl_DrawBuffer
_gl_DrawBuffer
movem.l d2/a2,-(a7)
move.l $10(a7),d2
move.l $C(a7),a2
L217
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L219
L218
; gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer" );
move.l #L216,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2/a2
rts
L219
; switch (mode)
move.l d2,d0
cmp.l #$406,d0
beq L227
bgt.b L230
cmp.l #$402,d0
beq L223
bgt.b L231
cmp.l #$400,d0
beq.b L220
bgt.b L232
cmp.l #0,d0
beq L226
bra L228
L232
bgt L227
L231
cmp.l #$404,d0
beq.b L220
bgt.b L233
blt L227
L233
bgt L223
L230
sub.l #$407,d0
cmp.l #5,d0
bhi L228
move.l L234(pc,d0.l*4),a0
jmp (a0)
L234
dc.l L227
dc.l L220
dc.l L227
dc.l L227
dc.l L227
dc.l L227
;
L220
; if ( (*ctx->Driver.SetBuffer)( ctx, GL_FRONT ) ==
pea $404.w
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
tst.b d0
bne.b L222
L221
; gl_error( ctx, GL_INVALID_OPERATION, "glDraw
move.l #L216,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2/a2
rts
L222
; ctx->Color.DrawBuffer = mode;
move.l d2,$21E2(a2)
; ctx->Buffer->Alpha = ctx->Buffer->FrontAlpha;
move.l $8FC(a2),a0
move.l $18(a0),a1
move.l $8FC(a2),a0
move.l a1,$20(a0)
; ctx->NewState |= NEW_RASTER_OPS;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #2,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
;
bra L229
L223
; if ( (*ctx->Driver.SetBuffer)( ctx, GL_BACK ) == G
pea $405.w
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
tst.b d0
bne.b L225
L224
; gl_error( ctx, GL_INVALID_OPERATION, "glDraw
move.l #L216,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2/a2
rts
L225
; ctx->Color.DrawBuffer = mode;
move.l d2,$21E2(a2)
; ctx->Buffer->Alpha = ctx->Buffer->BackAlpha;
move.l $8FC(a2),a0
move.l $1C(a0),a1
move.l $8FC(a2),a0
move.l a1,$20(a0)
; ctx->NewState |= NEW_RASTER_OPS;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #2,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
;
bra.b L229
L226
; ctx->Color.DrawBuffer = mode;
move.l d2,$21E2(a2)
; ctx->Buffer->Alpha = NULL;
move.l $8FC(a2),a0
clr.l $20(a0)
; ctx->NewState |= NEW_RASTER_OPS;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #2,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
;
bra.b L229
L227
; gl_error( ctx, GL_INVALID_OPERATION, "glDrawBuffer
move.l #L216,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
;
bra.b L229
L228
; gl_error( ctx, GL_INVALID_ENUM, "glDrawBuffer" );
move.l #L216,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L229
movem.l (a7)+,d2/a2
rts
L216
dc.b 'glDrawBuffer',0
SECTION "_gl_ReadBuffer:0",CODE
;void gl_ReadBuffer( GLcontext *ctx, GLenum mode )
XDEF _gl_ReadBuffer
_gl_ReadBuffer
movem.l d2/a2,-(a7)
move.l $10(a7),d2
move.l $C(a7),a2
L236
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L238
L237
; gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer" );
move.l #L235,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2/a2
rts
L238
; switch (mode)
move.l d2,d0
sub.l #$400,d0
cmp.l #$C,d0
bhi L246
move.l L248(pc,d0.l*4),a0
jmp (a0)
L248
dc.l L239
dc.l L245
dc.l L242
dc.l L245
dc.l L239
dc.l L242
dc.l L245
dc.l L245
dc.l L246
dc.l L245
dc.l L245
dc.l L245
dc.l L245
;
L239
; if ( (*ctx->Driver.SetBuffer)( ctx, GL_FRONT ) ==
pea $404.w
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
tst.b d0
bne.b L241
L240
; gl_error( ctx, GL_INVALID_OPERATION, "glRead
move.l #L235,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2/a2
rts
L241
; ctx->Pixel.ReadBuffer = mode;
move.l a2,a0
add.l #$B168,a0
move.l d2,(a0)
; ctx->Buffer->Alpha = ctx->Buffer->FrontAlpha;
move.l $8FC(a2),a0
move.l $18(a0),a1
move.l $8FC(a2),a0
move.l a1,$20(a0)
; ctx->NewState |= NEW_RASTER_OPS;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #2,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
;
bra L247
L242
; if ( (*ctx->Driver.SetBuffer)( ctx, GL_BACK ) == G
pea $405.w
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
tst.b d0
bne.b L244
L243
; gl_error( ctx, GL_INVALID_OPERATION, "glRead
move.l #L235,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2/a2
rts
L244
; ctx->Pixel.ReadBuffer = mode;
move.l a2,a0
add.l #$B168,a0
move.l d2,(a0)
; ctx->Buffer->Alpha = ctx->Buffer->BackAlpha;
move.l $8FC(a2),a0
move.l $1C(a0),a1
move.l $8FC(a2),a0
move.l a1,$20(a0)
; ctx->NewState |= NEW_RASTER_OPS;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #2,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
;
bra.b L247
L245
; gl_error( ctx, GL_INVALID_OPERATION, "glReadBuffer
move.l #L235,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
;
bra.b L247
L246
; gl_error( ctx, GL_INVALID_ENUM, "glReadBuffer" );
move.l #L235,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L247
; (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Color.DrawBuffer );
move.l $21E2(a2),-(a7)
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
movem.l (a7)+,d2/a2
rts
L235
dc.b 'glReadBuffer',0
END